Processing devices typically have built-in hardware logic circuitry that can calculate not only basic arithmetic functions (like addition, subtraction, and multiplication) but also non-arithmetic functions such as reciprocal, square root and exponential. The latter are also referred to as transcendental functions. Due to their inherent nature, transcendental functions cannot be directly computed with high precision, but instead have to be estimated to the desired precision, typically by computing a polynomial of sufficiently high order. The complexity of the circuitry required for computing transcendental functions is proportional to the needed precision (number of bits), and can play a large role in the overall cost of high volume manufactured microprocessors, such as those found in consumer electronic devices (e.g., personal computers, video game machines, smart phones) as well as engineering and scientific workstations and server machines. As a result, microprocessor designs (and their associated instructions sets) that are intended for different applications may support different precisions for the same transcendental function.
Application software that contains a first transcendental function instruction that is defined for a first microprocessor family may not run properly on another, second microprocessor family. This may be true even when the minimum precision, in terms of a sufficient number of bits, is available in an instruction for the same transcendental function, defined for the second family. That may be due to the software requiring not just the minimum precision in the result of the instruction, but also a sufficient number of bits of the result to be the same. One possible solution for making the software compatible is to add the hardware circuitry needed for computing the first transcendental function instruction, into the second microprocessor family.